package com.bcbim.smart_water_interface.road.service;

import com.bcbim.common.sys.Code;
import com.bcbim.smart_water_interface.road.dao.RoadDAO;
import com.bcbim.smart_water_interface.road.dto.RoadDTO;
import com.bcbim.smart_water_interface.road.vo.RoadVO;

import java.util.List;

/**
 * 道路维护service
 *
 * @author wxc
 * @version V 1.0.0
 * @date 2021/8/26
 **/
public interface RoadService {

    /**
     * 添加道路
     *
     * @param roadDAO 道路数据库对应实体类
     * @return java.lang.Integer
     * @author wxc
     * @date 2021/8/26  10:50
     */
    Integer addRoad(RoadDAO roadDAO);

    /**
     * 获取道路列表数量
     *
     * @param roadDTO 道路列表查询实体类
     * @return java.lang.Integer
     * @author wxc
     * @date 2021/8/26  10:49
     */
    Integer getRoadListCount(RoadDTO roadDTO);

    /**
     * 获取道路列表分页数据
     *
     * @param roadDTO 道路列表查询实体类
     * @return java.util.List<com.bcbim.pipeline_interface.road.vo.RoadVO>
     * @author wxc
     * @date 2021/8/26  10:49
     */
    List<RoadVO> getRoadList(RoadDTO roadDTO);

    /**
     * 查看道路详情
     *
     * @param id 道路id
     * @return com.bcbim.pipeline_interface.road.vo.RoadVO
     * @author wxc
     * @date 2021/8/26  11:08
     */
    RoadVO getRoadDetail(String id);

    /**
     * 修改道路信息
     *
     * @param roadDAO 道路数据库对应实体类
     * @return java.lang.Integer
     * @author wxc
     * @date 2021/8/26  15:04
     */
    Integer updateRoad(RoadDAO roadDAO);

    /**
     * 逻辑删除道路
     *
     * @param requestDo 道路数据库对应实体类
     * @return java.lang.Integer
     * @author wxc
     * @date 2021/8/26  15:07
     */
    Integer deleteRoad(RoadDAO requestDo);

    /**
     * 判断道路名称是否已经存在
     *
     * @param roadDAO 道路数据库对应实体类
     * @return boolean  道路是否存在
     * @author wxc
     * @date 2021/9/6  9:27
     */
    boolean checkRoad(RoadDAO roadDAO);

    /**
     * 判断道路是否已经使用
     *
     * @param id 道路id
     * @return boolean
     * @author wxc
     * @date 2021/9/6  9:56
     */
    boolean checkRoadUse(String id);

    /**
     * 获取道路下拉列表
     *
     * @return java.util.List<com.bcbim.common.sys.Code>
     * @author wxc
     * @date 2021/9/13  13:46
     */
    List<Code> listRoadPull(String roadName);

}
